# @Time    :2025/4/14 15:26
def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:#如果中间值等于 目标值 说明找到了 就返回中间值的索引
            return mid
        elif arr[mid] < target: #如果中间值小于目标值 说明在右半部分
            left = mid + 1     #左指针向右走 到中间值的下一个位置
        else:
            right = mid - 1
    return -1 #没有找到就返回-1

# 定义一个有序数组
arr = [1, 3, 5, 7, 9, 11, 13]
# 定义要查找的目标值
target1 = 7
target2 = 8

# 调用二分查找函数查找目标值
result1 = binary_search(arr, target1)
result2 = binary_search(arr, target2)

# 输出结果

print(f"目标值 {target1} 在数组中的索引是 {result1}")

# if result2 != -1:
#     print(f"目标值 {target2} 在数组中的索引是 {result2}")
# else:
#     print(f"目标值 {target2} 不在数组中")